package model;

import java.awt.Component;
import java.util.Observable;

import view.HoofdScherm;
import view.Stijl;
import view.themas.Thema;

public abstract class Presenteerbaar extends Observable {
	private Thema thema;
	private ItemKenmerken kenmerken;

	public Thema getThema() {
		return thema;
	}

	public void setThema(Thema thema) {
		this.thema = thema;
	}

	public ItemKenmerken getKenmerken() {
		return kenmerken;
	}

	public void setKenmerken(ItemKenmerken kenmerken) {
		this.kenmerken = kenmerken;
	}

	protected Stijl geefRelevanteStijl() {
		return thema.geefStijlSelectieStrategy().geefRelevanteStijl(
				thema.geefThemaStijlen(), kenmerken);
	}

	protected void pasStijltoe(Component schermComponent, Stijl stijl) {
		HoofdScherm.getInstance().getPresentatieCanvas().setBackground(stijl.achtergrondkleur);
		schermComponent.setBackground(stijl.achtergrondkleur);
		schermComponent.setForeground(stijl.voorgrondkleur);
		schermComponent.setFont(stijl.lettertype);
	}

	public abstract Component toon();

	public abstract boolean volgende();

	public abstract boolean vorige();

	public abstract boolean gaNaar(int slideNummer);

}
